home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1997 May / PC Plus Super CD Issue 127 (May 1997).iso / delphi1 / lesson4 / todo2 / todo2.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-02-27  |  3.5 KB  |  149 lines

  1. unit Todo2;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, StdCtrls, Menus, ExtCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     InputLine: TEdit;
  12.     ToDoList: TListBox;
  13.     AddBtn: TButton;
  14.     DelBtn: TButton;
  15.     ClearBtn: TButton;
  16.     MainMenu1: TMainMenu;
  17.     File1: TMenuItem;
  18.     Save1: TMenuItem;
  19.     SaveAs1: TMenuItem;
  20.     Open1: TMenuItem;
  21.     Exit1: TMenuItem;
  22.     OpenDialog1: TOpenDialog;
  23.     SaveDialog1: TSaveDialog;
  24.     RadioGroupPriority: TRadioGroup;
  25.     procedure AddBtnClick(Sender: TObject);
  26.     procedure DelBtnClick(Sender: TObject);
  27.     procedure ClearBtnClick(Sender: TObject);
  28.     procedure Exit1Click(Sender: TObject);
  29.     procedure Save1Click(Sender: TObject);
  30.     procedure SaveAs1Click(Sender: TObject);
  31.     procedure Open1Click(Sender: TObject);
  32.     procedure ToDoListClick(Sender: TObject);
  33.   private
  34.     { Private declarations }
  35.   public
  36.     { Public declarations }
  37.   end;
  38.  
  39.  
  40. { This is a class definition for objects which can be associated with the
  41.   strings in our ToDo list box's string list }
  42. ToDoItem = class(TObject)
  43.   priority : integer;
  44.   procedure PutPriority( a_priority : integer );
  45.   function GetPriority : integer;
  46. end;
  47.  
  48. var
  49.   Form1: TForm1;
  50.  
  51. implementation
  52.  
  53. {$R *.DFM}
  54. procedure ToDoItem.PutPriority( a_priority : integer );
  55. begin
  56.   priority := a_priority;
  57. end;
  58.  
  59. function ToDoItem.GetPriority : integer;
  60. begin
  61.   GetPriority := priority;
  62. end;
  63.  
  64. function ConfirmFileSave(FileName : string) : boolean;
  65. begin
  66.     if MessageDlg(FileName + ' already exists. Save anyway?',
  67.                         mtConfirmation, mbYesNoCancel, 0)
  68.                         = mrYes then
  69.       ConfirmFileSave := true
  70.     else
  71.       ConfirmFileSave := false;
  72. end;
  73.  
  74.  
  75. procedure TForm1.AddBtnClick(Sender: TObject);
  76. var
  77.   CurrentItem : ToDoItem;
  78. begin
  79.    CurrentItem := ToDoItem.Create;
  80.    CurrentItem.PutPriority(RadioGroupPriority.ItemIndex+1);
  81.    ToDoList.Items.AddObject(InputLine.Text, CurrentItem);
  82. end;
  83.  
  84. procedure TForm1.DelBtnClick(Sender: TObject);
  85. begin
  86.   if ToDoList.ItemIndex >= 0 then
  87.      ToDoList.Items.Delete(ToDoList.ItemIndex);
  88. end;
  89.  
  90. procedure TForm1.ClearBtnClick(Sender: TObject);
  91. begin
  92.   ToDoList.Clear;
  93. end;
  94.  
  95. procedure TForm1.Exit1Click(Sender: TObject);
  96. begin
  97.   Close;
  98. end;
  99.  
  100. procedure TForm1.Save1Click(Sender: TObject);
  101. begin
  102.     if (OpenDialog1.Filename <> '')
  103.      and (OpenDialog1.Filename <> '*.*') then
  104.   begin
  105.     ToDoList.Items.SaveToFile(OpenDialog1.Filename);
  106.   end
  107.   else SaveAs1Click(Sender);
  108. end;
  109.  
  110. procedure TForm1.SaveAs1Click(Sender: TObject);
  111. var
  112.    SaveFile : boolean;
  113. begin
  114.    SaveFile := true;
  115.    with SaveDialog1 do
  116.     if Execute then
  117.     begin
  118.       if FileExists(FileName) then
  119.          SaveFile := ConfirmFileSave(FileName);
  120.       If SaveFile then
  121.       begin
  122.          ToDoList.Items.SaveToFile(Filename);
  123.          OpenDialog1.Filename := Filename;
  124.       end;
  125.     end;
  126. end;
  127.  
  128. procedure TForm1.Open1Click(Sender: TObject);
  129. begin
  130.   with OpenDialog1 do
  131.     if Execute then
  132.     begin
  133.       if FileExists(FileName) Then
  134.           ToDoList.Items.LoadFromFile(FileName)
  135.       else
  136.         MessageDlg('Sorry. Can''t load this file. '+ FileName +
  137.                            ' does not exist!',
  138.                         mtInformation, [mbOK], 0);
  139.     end;
  140. end;
  141.  
  142. procedure TForm1.ToDoListClick(Sender: TObject);
  143. begin
  144.   RadioGroupPriority.ItemIndex :=
  145.        ToDoItem(ToDoList.Items.Objects[ToDoList.ItemIndex]).GetPriority - 1;
  146. end;
  147.  
  148. end.
  149.